Skip to content

feat(skills): add fingerprint-ci-gate skill - #460

Open
liarjsdev wants to merge 3 commits into
OpenHands:mainfrom
liarjsdev:add-fingerprint-ci-gate
Open

feat(skills): add fingerprint-ci-gate skill#460
liarjsdev wants to merge 3 commits into
OpenHands:mainfrom
liarjsdev:add-fingerprint-ci-gate

Conversation

@liarjsdev

@liarjsdev liarjsdev commented Aug 6, 2026

Copy link
Copy Markdown
  • A human has tested these changes.

Why

Browser automation breaks silently: a base image bump changes the font set, a driver upgrade changes a CDP-visible property, a stealth patch stops applying. Nothing fails at build time and the breakage surfaces later as blocked or flaky end-to-end runs. There is no skill in skills/ that turns that class of regression into a build-time signal.

Summary

  • Adds skills/fingerprint-ci-gate/SKILL.md (category code-quality): save a baseline fingerprint scan as JSON, diff later runs against it, fail the job when the consistency score drops or a previously passing check starts failing, with the GitHub Actions wiring included.
  • Registers it in marketplaces/openhands-extensions.json, regenerates skills/index.js and the README catalog section.
  • Bumps EXPECTED_CATEGORY_COUNTS["code-quality"] 6 to 7 in tests/test_skills_catalog.py, which is required for any new code-quality entry.

Issue Number

N/A

How to Test

Repo-level checks:

npm run build:skills
python scripts/sync_extensions.py --check
pytest tests/test_skills_catalog.py tests/test_catalogs.py

The skill itself needs Node 22 or newer and no account:

npx liarjs --headless --json scan.json --min-score 60   # writes a baseline, exits non-zero below the threshold
npx liarjs diff baseline.json scan.json                 # prints what changed between two runs

What I ran locally before opening this, and the result:

  • npm run build:skills - catalog regenerated, the new entry appears with category: "code-quality".
  • python scripts/sync_extensions.py - README catalog section updated. The plugins/issue-duplicate-checker coverage warning it prints pre-exists on main and is untouched here.
  • pytest tests/test_skills_catalog.py tests/test_catalogs.py - 48 passed. Without the EXPECTED_CATEGORY_COUNTS bump, test_category_distribution_is_balanced fails.
  • Not run: the rest of the suite, which imports the openhands SDK, and the npx liarjs commands above were not executed inside this repo's CI environment. Saying so plainly rather than implying coverage I did not produce.

Video/Screenshots

Not applicable - this PR adds a Markdown skill and catalog metadata, no UI surface.

Notes

Disclosure: the skill drives liarjs, an npm-published fingerprint consistency checker, and I maintain it. It runs through npx, requires no account or API key, and the skill documents --offline and --endpoint so a CI job can run it fully self-contained with no calls to any hosted service.

@github-actions github-actions Bot added the type: feat A new feature label Aug 6, 2026
@all-hands-bot

Copy link
Copy Markdown
Contributor

👋 This PR needs a couple of things fixed before OpenHands can review it:

  • the PR description's HUMAN: section needs at least 20 characters describing what you tested, not just the template placeholder

Push an update once this is addressed and this check re-runs automatically.

This is an automated check - no AI was used to generate this comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feat A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants